
import HeaderView from '../components/HeaderView.vue';
import FooterView from '../components/FooterView.vue' ;

// 在 routes 数组中定义与学生相关操作的路由记录
const routes = [
  {
    path: '/sign/up',
    name: 'SignUp',
    components: {
        'header': HeaderView ,
        'default': () => { 
            console.log( '= = = 异步路由组件 = = =' );
            return import('../components/SignUpView.vue') 
        },
        'footer':FooterView
    },
    meta: {
        title: '学生注册'
    }
  },
  {
    path: '/sign/in',
    name: 'SignIn',
    components: {
        'header': HeaderView ,
        'default': () => { 
            console.log( '= = = 异步路由组件 = = =' );
            return import('../components/SignInView.vue') 
        },
        'footer': FooterView
    },
    // 为 default 视图启用 props 支持
    // 即将 $route.params 中的参数传递到 SignInView 组件的 props 中
    props: {
      'header': false,
      'default': true,
      'footer': false,
    },
    meta: {
        title: '学生登录'
    }
  },
  {
    path: '/profile',
    name: 'StudentProfile',
    components: {
        'header': HeaderView ,
        'default': () => { 
            return import('../components/ProfileView.vue') 
        },
        'footer': FooterView
    },
    meta: {
        title: '学生信息'
    }
  },
  {
    path: '/sign/out',
    name: 'SignOut',
    /*
    redirect: to => {
      sessionStorage.removeItem( 'LOGGED_IN_STUDENT' );
      return { path: '/home' }
    }
    */
    // 路由独享的守卫
    beforeEnter: (to,from)=>{
      console.log( '- - - 路由独享的守卫 - - -');
      console.log( 'from: ' , from.path , ' , to: ' , to.path ); 
      // 从 sessionStorage 中删除已经登录学生的信息
      sessionStorage.removeItem( 'LOGGED_IN_STUDENT' );
      // 返回 false 时 或 返回新的 路由记录 时 表示 终止当前导航
      return { path: '/home' }
    }
  }
];

// 导出 路由记录 数组
export default routes ;